Centos linux下通过yum安装svn及配置
--
Centos linux下通过yum安装svn及配置
环境 centos5.5
安装svn yum -y install subversion
配置
建立版本库目录 mkdir /www/svndata
svnserve -d -r /www/svndata
- 建立版本库
创建一个新的Subversion项目 svnadmin create /www/svndata/oplinux
配置允许用户rsync访问 cd /www/svndata/oplinux/conf
vi svnserve.conf anon-access=none auth-access=write password-db=passwd
注:修改的文件前面不能有空格,否则启动svn server出错
vi passwd [users] #<用户1> = <密码1> #<用户2> = <密码2> rsync=rsync
- 客户端连接 svn co svn://ip/oplinux 用户名密码:rsync
===========
实现SVN与WEB同步,可以CO一个出来,也可以直接配在仓库中
1)设置WEB服务器根目录为/www/webroot
2)checkout一份SVN
svn co svn://localhost/oplinux /www/webroot
修改权限为WEB用户
chown -R apache:apache /www/webroot/oplinux
3) 建立同步脚本
cd /www/svndata/oplinux/hooks/
cp post-commit.tmpl post-commit
编辑post-commit,在文件最后添加以下内容
export LANG=en_US.UTF-8
SVN=/usr/bin/svn
WEB=/www/webroot/
$SVN update $WEB –username rsync –password rsync
chown -R apache:apache $WEB
增加脚本执行权限
chmod +x post-commit
安装svn服务器端
yum install subversion 从镜像下载安装svn服务器端 cd /usr/local/ //进入目录,准备创建svn目录 mkdir svn //创建一个svn目录 chmod -R 777 svn //修改目录权限为777 svnadmin create /usr/local/svn/sunny //创建一个svn版本仓库sunny(sunny可以随便起名字) cd sunny/conf //进入sunny版本仓库下的配置文件目录
下面要修改这个目录下的三个配置文件
- vi svnserve.conf //配置版本库信息和用户文件和用户密码文件的路径、版本库路径 把
# anon-access = read
# auth-access = write
# password-db = passwd
# realm = sunny
这四行,前面的#号和空格去掉,变成
anon-access = none //改成none
auth-access = write
password-db = passwd
realm = sunny //改成自己的版本库
保存
- vi authz //文件,创建svn组和组用户的权限
[group]
sunny = gep,wce
//创建一个sunny的组,并制定两个用户gep和wce
[/] //制定根目录下的权限
@sunny = rw //sunny组用户权限为读写
* = r //其他用户只有读权限
保存退出
- vi passwd //创建或修改用户密码
[users]
gep = 123456 //用户名为gep的用户的密码为123456
wce = 123456 //。。。
保存退出
然后要设置自启动
vi /etc/rc.local
打开自启动文件 文件内容如下
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don’t
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
/usr/local/webserver/mysql/3306/mysql start
ulimit -SHn 51200
/usr/local/webserver/php/sbin/php-fpm start
/usr/local/webserver/nginx/sbin/nginx
svnserve -d -r /usr/local/svn/sunny
#/usr/local/webserver/mysql/bin/mysql -u root -p -S /tmp/mysql.sock
svn命令:
lsof -i :3690 查看svn是否启动
ps aux |grep ‘svn’ 查找所有svn启动的进程
kill -9 2505 杀死2505这个查找到的svn进程
svnserve -d -r /usr/local/svn/sunny 启动svn(可以把这个放到/etc/local/rc.local文件中,实现开机自启动)
svn up //更新文件
#svn commit -m “注释” xxx.php //提交文件
svn ci -m’aaa’ test.php //提交文件
#svn add file //新建文件并添加到svn
svn add *.php //(添加当前目录下所有的php文件)
svn delete test.php //删除test.php
svn log test.php //查看test文件的log信息
svn cleanup //清理当前目录
svn co svn://172.19.5.12 ./ //检出一份版本库文件到当前目录
svn switch –relocate svn://192.168.1.253 svn://172.19.10.250 //重新定位SVN版本库地址
SVN版本库启动方式,现在SVN下面有 sunny、test 两个版本库
1:单版本库启动 svnserve -d -r /usr/local/svn/sunny
2:多版本库启动 svnserve -d -r /usr/local/svn
区别在于起动svn时候的命令中的启动参数-r指定的目录。
限制不同的用户对不同的版本库操作权限,修改版本库中的conf目录下的 authz文件
以配置 sunny 版本库为例
vi authz
[groups]
teacher = sunny,sunny1
[sunny:/] //指定版本库跟目录下的权限
@teacher = rw //teacher组用户权限为读写
* = r //其他用户只有读权限
保存退出
vi passwd 设置组中用户的账号和密码
[users]
sunny = 123456
sunny1 = 123456